Python 调用 StanfordNLP 服务
Stanford NLP Group 提供了自然语言软件处理工具,目前(2021年)能够非常非常方便快捷的调用 POS、NER 等功能。本例是以 Server 方式提供服务,让 Python 能够调用相关服务。相关的步骤如下:
在 Download-CoreNLP 页面中下载 CoreNLP 以及其他需要的语言模型依赖包
解压缩 CoreNLP 文件,同时语言模型依赖包放在其中
使用 Java 启动 Server 的两种情况,使用默认的英语模型处理英文数据:
java -mx4g -cp '*' edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 9000 -timeout 15000
;第二种情况是需要添加非英语语言模型,处理非英文数据。例如处理中文语言:java -Xmx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -serverProperties StanfordCoreNLP-chinese.properties -port 9000 -timeout 15000
。两种模式都申明了最大的内存、端口以及超时时间。调用服务的方式是网络 API 的方式,因此可以使用 Python 中
requests
进行网络请求方式调用相关服务外,还可以使用其他网络请求的方式获取服务(例如 curl)1
2import requests
print(requests.post('http://[::]:9000/?properties={"annotators":"tokenize,ssplit,pos","outputFormat":"json"}', data = {'data':'整个世界垮掉,这不仅仅是一个测试,而且还是一个测试'}).text)
参考
Python 调用 StanfordNLP 服务
https://zenray.github.io/[object%20Object]/NLP-StanfordNLP%E8%BD%AF%E4%BB%B6%E4%BD%BF%E7%94%A8/